A hash function is generally a transformation that takes an input and returns a fixed-size string or number, which is called the hash value. A hash value may also be referred to as a message digest, a hash digest, or more simply as a hash, for example. A hash is generally substantially smaller than the input itself, and may be regarded as a “digital fingerprint” of the input.
Depending on the application, it may be desirable that a hash be generated by a formula or algorithm (referred to generally herein as a hash function) in such a way that it is extremely unlikely that some other input will produce the same hash. Hash functions with this property may be suitable for a variety of computational purposes, including cryptography. For example, hash functions may be employed to generate hash digests that are used in the production of digital signatures. Such digital signatures may be utilized in a variety of applications for authentication purposes in the processing of messages. For example, “messages” in this context may include, without limitation, electronic mail messages, certificate data, or messages transmitted between computing devices in accordance with a cryptographic protocol.